# 给定两个整数 l 和 r ，对于所有满足1 ≤ l ≤ x ≤ r ≤ 10^9 的 x ，请编写一个函数，找出x的所有约数。
# 对于每个约数，只保留最高位的那个数码。求1～9每个数码出现的次数。
#
# 【示例】
# 输入：(1, 4)
# 输出：(4,2,1,1,0,0,0,0,0)
# 解释：1≤x≤4，所以整数有1，2，3，4，约数分别为：1（1），2（1,2），3（1,3），4（1,2,4）。所以数码1出现4次，数码2出现2次，数码3出现1次，数码4出现1次。
#
# 题目难度：简单
# 题目来源：牛客网-数码 3

def solution(left: int, right: int)-> tuple:
    """
    先创建一个字典，key是1~9，value是0，然后遍历从左到右的数据，设置flag，
    如果flag小于遍历的数据，就用遍历的数据取余=0，代表整除，字典的key=flag自增1
    """
    #求1～9每个数码出现的次数，所以range从1开始
    dict1 = dict.fromkeys(range(1,10),0)
    # dict.fromkeys生成key，第二个参数0是默认value，如果不设置就是None
    # list1 = []
    for i in range(left,right+1):
        flag = 1
        while flag <= i:
            if i%flag == 0:
                # list1.append(flag)
                dict1[flag] = dict1[flag]+1
            flag = flag+1
    # print(list1)
    print(dict1.values())
    return tuple(dict1.values())

# solution(1, 4)
assert solution(1, 4) == (4,2,1,1,0,0,0,0,0)

# dict1 = {}
# a = {}
# for i in range(10):
#     flag = 1
#     dict1[flag] = 0
#     dict1[flag] = dict1[flag] + i
#     print(flag)
#     print(dict1[flag])
# a = [1,3,4,5]
# print(a.count(1))